/*
		字符串函数的使用和模拟实现

		夏思成

		2024年3月29日

		西科大15号公寓楼
*/

//#include <stdio.h>
//#include <string.h>
//
////strcmp函数的介绍和使用
//
//int main()
//{
//	char arr1[] = "abcedf";
//	char arr2[] = "abcq";
//
//	int ret = strcmp(arr1, arr2);
//	printf("%d\n", ret);
//	return 0;
//}


////strcmp函数的模拟实现
//
//#include <stdio.h>
//#include <assert.h>
//
//int my_strcmp(const char* p1, const char* p2)
//{
//	//使用指针前先对其进行断言，判断其是否可用
//	assert(p1 != NULL);
//	assert(p2 != NULL);
//
//	while (*p1 == *p2)
//	{
//		//如果出现\0，说明两个字符串完全相同
//		if (*p1 == '\0')
//		{
//			return 0;
//		}
//
//		//使指针后移，指针下一个元素
//		p1++;
//		p2++;
//	}
//
//	//字符减法相当于用ASCII码值进行减法，如果p1>p2,则返回一个大于0的数，反之返回一个小于0的数
//	return *p1 - *p2;
//}
//
//int main()
//{
//	char arr1[] = "abcdef";
//	char arr2[] = "abcdef";
//
//	int ret = my_strcmp(arr1, arr2);
//
//	printf("%d\n", ret);
//	return 0;
//}


////strncpy函数的使用
//
//#include <stdio.h>
//#include <string.h>
//
//int main()
//{
//	char arr1[20] = "xxxxxxxxxxxx";
//	char arr2[] = "ghijk";
//
//	char *ret = strncpy(arr1, arr2, 6);
//	printf("%s\n", ret);
//	return 0;
//}

////strncat函数的使用
//
//#include <stdio.h>
//#include <string.h>
//
//int main()
//{
//	char arr1[30] = "xxxxx\0xxxxxxx";
//	char arr2[] = "ghi";
//
//	char* ret = strncat(arr1, arr2, 5);
//
//	printf("%s\n", ret);
//	return 0;
//}

//
////strncmp函数的使用
//
//#include <stdio.h>
//#include <string.h>
//
//int main()
//{
//	char arr1[] = "abcdef";
//	char arr2[] = "abcdg";
//
//	int ret1 = strncmp(arr1, arr2, 4);
//
//	int ret2 = strncmp(arr1, arr2, 5);
//
//	printf("%d %d\n", ret1, ret2);
//	return 0;
//}



